package com.wenli.graduate2022.wenliGreenShop.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wenli.graduate2022.wenliGreenShop.entity.Category;
import com.wenli.graduate2022.wenliGreenShop.entity.ProductOrder;
import com.wenli.graduate2022.wenliGreenShop.entity.ProductOrderItem;
import com.wenli.graduate2022.wenliGreenShop.service.servDao.ProductOrderItemService;
import com.wenli.graduate2022.wenliGreenShop.service.servDao.ProductOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author HuangHai
 * @date 2021/10/13 16:30
 */
@RestController
public class ProductOrderController {

    @Autowired
    ProductOrderService productOrderService;

    @Autowired
    ProductOrderItemService productOrderItemService;

    @GetMapping("/productOrder/findByUserId/{id}")
    public List<ProductOrder> findByUserId(@PathVariable("id") Integer id) {    //根据用户id查询它的所有订单
        return productOrderService.findByUserId(id);
    }

    @GetMapping("/productOrder/{page}/{size}") //倒序分页查询
    public IPage<ProductOrder> findByPage(@PathVariable("page") Integer page, @PathVariable("size") Integer size) {
        Page<ProductOrder> productOrderPage = new Page<ProductOrder>(page, size);
        return productOrderService.findByPage(productOrderPage);
    }

    @GetMapping("/productOrder/findByCode/{code}/{page}/{size}")
    public IPage<ProductOrder> findByCode(@PathVariable("page") Integer page,@PathVariable("size") Integer size,@PathVariable("code") String code) {        //根据订单号查询订单
        Page<ProductOrder> productPage = new Page<ProductOrder>(page, size);
        return productOrderService.findByCode(productPage,code);
    }

    @GetMapping("/productOrder/findByOrderId/{id}")
    public ProductOrder findByOrderId(@PathVariable("id") Integer id) {    //根据订单id查询
        return productOrderService.findByOrderId(id);
    }

    @PutMapping("/productOrder/updateStatus/{code}")
    public int updateStatus(@PathVariable("code") String code) {       //商家发货，改变订单状态
        return productOrderService.updateStatus(code);
    }

    @DeleteMapping("/productOrder/{id}")
    public int delete(@PathVariable("id") Integer id) {   //根据订单号删除订单
        return productOrderService.delete(id);
    }

    @PostMapping("/productOrder/addOrder")
    public int insert(@RequestBody Map<String,Object> requestBody){
        ProductOrder productOrder = new ProductOrder();
        productOrder.setProductorderCode((System.currentTimeMillis()+"").trim());
        productOrder.setProductorderDetailAddress((String) requestBody.get("detailAddress"));
        productOrder.setProductorderMobile((String) requestBody.get("phoneNumber"));
        productOrder.setProductorderPayDate(new Date());
        productOrder.setProductorderStatus((byte) 1);
        productOrder.setProductorderReceiver((String) requestBody.get("name"));
        String address = (String) requestBody.get("address");
        String userId =  (String) requestBody.get("userId");
        String message =  (String) requestBody.get("message");
        productOrderService.insert(productOrder,address,userId);
        List<Map<String,Object>> items = (List<Map<String,Object>>) requestBody.get("items");
        ProductOrderItem productOrderItem = new ProductOrderItem();
//        for (int i = 0; i <items.size() ; i++) {
//            productOrderItem.setProductorderitemUserMessage(message);
//            productOrderItem.setProductorderitemNumber();
//            productOrderItem.setProductorderitemPrice();
//            productOrderItem.setProductorderitemOrderId(productOrder.getProductorderId());
//            productOrderItemService.insert(productOrderItem,items.get(i).get("shoppingcartProduct").get)
//        }

        return 1;
    }
}
